/**
 * 项目名称: 折半查找.cpp
 * 项目路径: study/DataStructure/数据结构/查找
 * 编辑时间: 2024年08月19日10时57分58秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

struct SSTable {
    int *elem;//动态数组基地址
    int tableLen;//表的长度
};

//折半查找
int Binary_Search(SSTable L,int key){
    int low = 0,high = L.tableLen-1,mid;
    while (low<=high){
        mid=(low+high)/2;//取中间位置
        if(L.elem[mid]==key)return mid;
        else if(L.elem[mid]>key)high=mid-1;//从前半部分查找
        else low=mid+1;//从后半部分查找
    }
    return -1;//查找失败,返回-1
}
